﻿using System;
using TestingConcurrencyBenchmark.Problems.CigaretteSmokers;

namespace TestingConcurrencyBenchmark.ProblemFactories
{
    public class CigaretteSmokersFactory : IProblemFactory<AbstractCigaretteSmoker>
    {
        #region IProblemFactory<AbstractCigaretteSmokers> Members

        public AbstractCigaretteSmoker GetSolution()
        {
            return new CigaretteSmokerSolution();
        }

        public AbstractCigaretteSmoker GetSolutionWithDeadlock()
        {
            return new CigaretteSmokerWithDeadlock();
        }

        public AbstractCigaretteSmoker GetSolutionWithRaceCondition()
        {
            throw new NotImplementedException();
        }

        public AbstractCigaretteSmoker GetSolutionWithDatarace()
        {
            throw new NotImplementedException();
        }

        #endregion
    }
}